package com.ruoyi.app.service;

import com.ruoyi.app.domain.AppUserCode;
import com.ruoyi.app.domain.vo.AppUserCodeVo;
import com.ruoyi.app.domain.bo.AppUserCodeBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * 实名认证Service接口
 *
 * @author ruoyi
 * @date 2025-08-08
 */
public interface IAppUserCodeService {

    /**
     * 查询实名认证
     */
    AppUserCodeVo queryById(Long codeId);


    AppUserCodeVo queryByOrderNo(String orderNo);

    /**
     * 查询实名认证列表
     */
    TableDataInfo<AppUserCodeVo> queryPageList(AppUserCodeBo bo, PageQuery pageQuery);

    /**
     * 查询实名认证列表
     */
    List<AppUserCodeVo> queryList(AppUserCodeBo bo);

    /**
     * 新增实名认证
     */
    Boolean insertByBo(AppUserCodeBo bo);

    /**
     * 修改实名认证
     */
    Boolean updateByBo(AppUserCodeBo bo);

    /**
     * 校验并批量删除实名认证信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 查询认证的订单
     * @param id
     * @return
     */
    List<AppUserCode> selUserCodeList(Long id);

    /**
     * 更新信息
     * @param appUserCode
     */
    void updateCodeData(AppUserCode appUserCode);

    Set<Long> selAuthed();

    int queryAuthed();
}
